package com.hst.capacity.application.biz;

import com.hst.capacity.domain.model.entity.setting.line.IntercityLineAutoGrabEntity;
import com.hst.capacity.domain.model.request.setting.line.CityLineParam;
import com.hst.capacity.domain.model.request.setting.line.IcLineSaveParam;
import com.hst.capacity.domain.model.request.setting.line.IntercityLineAutoGrabParam;
import com.hst.capacity.domain.model.request.setting.price.IcSaveParam;
import com.hst.capacity.domain.model.response.dispatch.CityLineVO;
import com.hst.capacity.domain.model.response.driver.DriverBandLineVO;
import com.hst.capacity.domain.model.response.setting.line.CityLineInfoVO;
import com.hst.capacity.domain.model.response.setting.line.IntercityLineVO;
import com.hst.capacity.domain.model.response.setting.price.IntercityPriceVO;
import org.springframework.data.domain.Page;

import java.util.HashMap;
import java.util.List;

public interface IntercityLineBiz {

    CityLineInfoVO getCityLine(String idCityLine);

    String cityLineSave(CityLineParam param);

    IntercityLineVO getInterCityLine(String idLine);

    String IcLineSave(IcLineSaveParam param);

    IntercityPriceVO getInterCityLinePrice(String idLine);

    Integer icLinePriceSave(IcSaveParam param);

    boolean updateCityLineStatus(IcLineSaveParam param);

    HashMap getCityLines(String cityCode);

    HashMap getCustomCityLines(String cityCode);

    HashMap findCityLineByCode(CityLineParam param);

    IntercityLineAutoGrabEntity intercityLineAutoGrabSave(IntercityLineAutoGrabParam param);

    List<IntercityLineAutoGrabEntity> findAutoGrabListByIdLine(String idLine);

    IntercityLineAutoGrabEntity findAutoGrabInfo(String idLineAutoGrab);

    List<IntercityLineAutoGrabEntity> findAllIntercityLineAutoGrab();

    HashMap getBindDriverList(String idFranchisee, String idCityLine);

    boolean bindDriver(String idDriverLst, String idCityLine, int bandKbn);

    Integer orderGrabLimit(String idLine, int maxGrabNum);

    Integer findOrderGrabNum(String idLine);

}